home *** CD-ROM | disk | FTP | other *** search
Applesoft BASIC Source Code | 1989-05-22 | 4.7 KB | 196 lines | [FC] Applesoft BASIC Program (0x0801) |
- 10 INVERSE
- 20 PRINT CHR$(4)"PREFIX": INPUT CTPTH$: PRINT CHR$(4)"PREFIX"CTPTH$
- 6000 REM ======
- 6010 REM Diskfn
- 6020 REM ======
- 6030 CALL BOX,3,5,38,20
- 6040 PRINT " Disk Functions"
- 6050 PRINT
- 6060 PRINT "1. Catalog
- 6070 PRINT "2. Set Path"
- 6080 PRINT "3. Create Subdirectory"
- 6090 PRINT "4. Set Default Save Path"
- 6100 PRINT "5. Status"
- 6110 PRINT "6. Exit"
- 6120 PR$ = " Press the number of your choice.": GOSUB 50000
- 6130 GET K$
- 6140 IF K$ = ES$ THEN 6200
- 6150 IF NOT VAL(K$) THEN GOSUB 51000: GOTO 6120
- 6160 M2 = VAL(K$): IF M2 >6 THEN GOSUB 51000: GOTO 6120
- 6170 ON M2 GOSUB 31000,32000,33000,34000,35000
- 6180 IF M2 = 6 THEN 6200
- 6190 GOTO 6030
- 6200 ONERR GOTO 10000
- 6210 CALL BOX,11,10,18,3: PRINT " One moment...": PRINT CHR$(4)"CHAIN M.GRAPH.MAIN"
- 10000 CALL -3288
- 10010 POKE 216,0
- 10020 CALL BOX,5,5,30,15: PRINT : PRINT " FATAL ERROR."
- 10030 PRINT : PRINT " Missing a module."
- 10040 PRINT : PRINT " Press a key to exit."
- 10050 GET K$
- 10060 POKE 104,8: GOTO 150
- 31000 REM =======
- 31010 REM catalog
- 31020 REM =======
- 31030 CALL BOX,4,7,37,18
- 31040 FC = 0
- 31050 CC = 0
- 31060 PRINT " Catalog:"CTPTH$
- 31070 IF CTPTH$ < >"" THEN PRINT :K$ = CTPTH$: GOTO 31090
- 31080 PRINT CHR$(4)"PREFIX": INPUT K$
- 31090 ONERR GOTO 31230
- 31100 PRINT CHR$(4)"OPEN"K$",TDIR"
- 31110 PRINT CHR$(4)"READ"K$
- 31120 INPUT K$,K$,K$
- 31130 INPUT K$
- 31140 IF K$ = "" THEN PRINT CHR$(4)"CLOSE": GOTO 31200
- 31150 FC = FC +1
- 31160 PRINT LEFT$(K$,20)
- 31170 CC = CC +1
- 31180 IF CC = 12 THEN PR$ = "Press a key": GOSUB 50000: POKE 49168,0: WAIT 49152,128: POKE 49168,0: CALL BOX,4,7,37,18:CC = 0: PRINT " Catalog": PRINT : GOTO 31130
- 31190 GOTO 31130
- 31200 IF CC THEN PR$ = "Press a key": GOSUB 50000: GET K$
- 31210 IF NOT FC THEN PRINT " No files.":FC = 1:CC = 1: GOTO 31200: REM kludge to catch null cats
- 31220 RETURN
- 31230 CALL -3288: REM FIXERRS
- 31240 POKE 216,0
- 31250 PRINT CHR$(4)"CLOSE": GOTO 31200
- 32000 REM =======
- 32010 REM SETPATH
- 32020 REM =======
- 32030 CALL BOX,4,7,37,18
- 32040 PRINT " Set Path"
- 32050 PR$ = "Enter pathname or ,S#,D#": GOSUB 50000
- 32060 CALL BOX,12,10,19,7
- 32070 PRINT CHR$(20):H = 13:V = 11:W = 15:L = 64
- 32080 IF CTPTH$ = "" THEN PRINT CHR$(4)"PREFIX": INPUT RNPTH$:CTPTH$ = RNPTH$
- 32090 IN$ = CTPTH$
- 32100 GOSUB 54000
- 32110 ONERR GOTO 32170
- 32120 IF IN$ = "" THEN 32150
- 32130 PRINT CHR$(4)"PREFIX"IN$
- 32140 PRINT CHR$(4)"PREFIX": INPUT CTPTH$
- 32150 PRINT CHR$(4)"PREFIX"RNPTH$
- 32160 RETURN
- 32170 CALL -3288: REM FIXERRS
- 32180 POKE 216,0
- 32190 CALL BOX,4,7,37,18
- 32200 CALL BOX,12,10,19,7: PRINT : PRINT " Can't set that path."
- 32210 PR$ = "Press a key.": GOSUB 50000
- 32220 GET K$
- 32230 ONERR GOTO 32250
- 32240 GOTO 32150
- 32250 CALL BOX,12,10,19,7: PRINT : PRINT " Fatal error.": PRINT " Press a key.": GET K$: PRINT CHR$(4)"bye"
- 33000 REM ===================
- 33010 REM CREATE SUBDIRECTORY
- 33020 REM ===================
- 33030 CALL BOX,4,7,37,18
- 33040 PRINT " Create Subdirectory"
- 33050 PR$ = "Create what subdirectory?": GOSUB 50000
- 33060 CALL BOX,12,10,19,7
- 33070 PRINT CHR$(20):H = 13:V = 11:W = 15:L = 64
- 33080 IN$ = CTPTH$
- 33090 GOSUB 54000
- 33100 IF IN$ = "" THEN 33160
- 33110 ONERR GOTO 33170
- 33120 IF LEFT$(IN$,1) = "/" THEN PRINT CHR$(4)"create"IN$: GOTO 33140
- 33130 PRINT CHR$(4)"create"CTPTH$IN$
- 33140 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Subdirectory": PRINT " created.":PR$ = "Press a key.": GOSUB 50000
- 33150 GET K$
- 33160 RETURN
- 33170 CALL -3288
- 33180 POKE 216,0
- 33190 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Unable to": PRINT " create it."
- 33200 PR$ = "Press a key.": GOSUB 50000
- 33210 GOTO 33150
- 34000 REM ===========
- 34010 REM set default
- 34020 REM ===========
- 34030 CALL BOX,4,7,37,18
- 34040 PRINT " Set Default"
- 34050 K$ = CTPTH$: IF K$ = "" THEN K$ = SVPTH$
- 34060 FOR C1 = 1 TO 64:K$ = K$ +" ": NEXT :K$ = LEFT$(K$,64)
- 34070 FOR C1 = 1 TO 64: POKE 767 +C1, ASC( MID$ (K$,C1)): NEXT
- 34080 ONERR GOTO 34160
- 34090 PRINT CHR$(4)"BSAVE"SVPTH$"M.GRAPH.MAIN,A768,L64,B$10,TBAS"
- 34100 PRINT CHR$(4)"BSAVEM.GRAPH.MAIN,A768,L64,B$10,TBAS"
- 34110 PRINT : PRINT "The default save path is now"
- 34120 PRINT K$
- 34130 DFAULTPTH$ = K$
- 34140 PR$ = "Press a key": GOSUB 50000
- 34150 GET K$: RETURN
- 34160 CALL -3288
- 34170 POKE 216,0
- 34180 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Unable to": PRINT " set default."
- 34190 PR$ = "Press a key.": GOSUB 50000
- 34200 GOTO 34150
- 35000 REM ======
- 35010 REM status
- 35020 REM ======
- 35030 CALL BOX,4,7,37,18
- 35040 PRINT " Pathname status:"
- 35050 PRINT
- 35060 PRINT " Default will set to:"
- 35070 PRINT " "CT$;: IF CT$ = "" THEN PRINT SVPTH$;
- 35080 PRINT
- 35090 PRINT " Mighty Graph will catalog:"
- 35100 PRINT " "CT$;: IF CT$ = "" THEN PRINT SVPTH$;
- 35110 PRINT
- 35120 PRINT " Mighty Graph will save files to:"
- 35130 PRINT " "DFAULTPTH$;: IF DFAULTPTH$ = "" THEN PRINT SVPTH$;
- 35140 PR$ = "Press a key.": GOSUB 50000
- 35150 GET K$
- 35160 RETURN
- 50000 REM ==========
- 50010 REM Prompt Box
- 50020 REM ==========
- 50030 W = LEN(PR$) +2
- 50040 CALL BOX,40 -W,21,W,3
- 50050 PRINT PR$
- 50060 RETURN
- 51000 REM ====
- 51010 REM Bell
- 51020 REM ====
- 51030 CALL PEEK(121) + PEEK(122) *256 +28: REM SPEED= DEL <UNKNOWN TOKEN> SPEED= <CTRL-0x01> DEL <UNKNOWN TOKEN> SPEED= <CTRL-0x02><CTRL-0x18> HGR2 <CTRL-0x14> PLOT 0 TAB( SPEED= <CTRL-0x02> DEL <UNKNOWN TOKEN> SPEED= $<CTRL-0x18> HGR2 <CTRL-0x08> PLOT 0 TAB( NOT <UNKNOWN TOKEN> = STR$`8H RIGHT$<CTRL-0x01> = <UNKNOWN TOKEN>h RIGHT$<CTRL-0x01> = <UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN> -<CTRL-0x01><UNKNOWN TOKEN> RND = VAL:`
- 51040 RETURN
- 53000 REM ===============
- 53010 REM text print prmt
- 53020 REM ===============
- 53030 PRINT CHR$(4)"PR#0"
- 53040 NORMAL : TEXT : HOME : VTAB 12: HTAB 12
- 53050 PRINT "PRINTING... PLEASE WAIT.": INVERSE
- 53060 RETURN
- 54000 REM
- 54010 REM ****************************
- 54020 REM * *
- 54030 REM * NAME:OK INPUT *
- 54040 REM * PASS:V = VERT POSN *
- 54050 REM * PASS:H = HORIZ POSN *
- 54060 REM * PASS:W = WIDTH OF INPUT *
- 54070 REM * PASS:L = LENGTH OF INPUT *
- 54080 REM * PASS:IN$ = DEFAULT INPUT *
- 54090 REM * USES:T$,T,T1,T2,T3,T4,IN$*
- 54100 REM * RETN:IN$ *
- 54110 REM * *
- 54120 REM ****************************
- 54130 REM
- 54140 ONERR GOTO 54330
- 54150 IN$ = LEFT$(IN$,64)
- 54160 VTAB V: HTAB H: POKE 32,H -1: POKE 33,W +1: PRINT : VTAB V: HTAB 1: PRINT IN$;:T1 = PEEK(37) +1:T2 = PEEK(36) +H: PRINT CHR$(20);
- 54170 T3 = T2 -H:T4 = LEN(IN$)
- 54180 HTAB T2: VTAB T1: PRINT " ": HTAB T2: VTAB T1: PRINT "_"
- 54190 IF PEEK(49152) <128 THEN 54180
- 54200 GET T$: IF T$ = CHR$(13) THEN 54320
- 54210 IF T$ = CHR$(24) THEN FOR T = 1 TO LEN(IN$):T$ = CHR$(8): GOSUB 54270: NEXT : GOTO 54180
- 54220 IF T$ = CHR$(27) THEN FOR T = 1 TO LEN(IN$):T$ = CHR$(8): GOSUB 54270: NEXT : VTAB T1: HTAB T2: PRINT " ": GOTO 54320
- 54230 IF T$ = CHR$(8) OR T$ = CHR$(127) THEN GOSUB 54270: GOTO 54180
- 54240 IF T$ <" " OR T4 = L THEN 54180
- 54250 VTAB T1: HTAB T2: PRINT T$;:IN$ = IN$ +T$:T2 = T2 +1:T4 = T4 +1:T3 = T3 +1: IF T3 >W THEN T3 = 0:T2 = H:T1 = T1 +1
- 54260 GOTO 54180
- 54270 IF H = T2 THEN IF V = T1 THEN RETURN
- 54280 IF LEN(IN$) = 1 THEN IN$ = "": HTAB T2: VTAB T1: PRINT " ";:T2 = H:T1 = V:T4 = 0:T3 = 0: RETURN
- 54290 IN$ = LEFT$(IN$, LEN(IN$) -1): VTAB T1: HTAB T2: PRINT " ":T2 = T2 -1: IF T2 <H THEN T2 = H +W:T1 = T1 -1
- 54300 T3 = T3 -1: IF T3 <0 THEN T3 = W
- 54310 T4 = T4 -1: RETURN
- 54320 HTAB T2: VTAB T1: PRINT " ": POKE 216,0: RETURN
- 54330 CALL -3288: POKE 216,0: POKE 49168,0: GOTO 54140